# define _CRT_SECURE_NO_WARNINGS
//计算月份天数

//#include<stdio.h>
////首先判断是不是闰年，闰年的2月是29天
//int S_leap_year(int year)
//{
//	
//	if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
//	{
//		return 1;
//	}
//	else
//		return 0;
//}
//int S_day_month( int year,int d)
//{
//		int days[13] = { 0,31,28,31,30,31,30,31,30,31,30,31,30 };
//		int day = days[d];
//		if (S_leap_year(year) && d == 2)
//		{
//			day += 1;
//		}
//	return day;
//}
//int main()
//{
//	int day = 0, month = 0,year=0;
//	scanf("%d%d", &year,&month);
//
//	int total = S_day_month( year,month);
//	printf("%d",total);
//	return 0;
//}


//各个数位之和，使用递归
//#include<stdio.h>
//int Sprint(int a)
//{
//	int total = 0;
//	if (a < 9)
//	{
//		return  a;
//	}
//	else
//	{
//		return total + Sprint(a / 10) + a % 10;
//	}
//}
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	int sum = Sprint(a);
//	printf("%d", sum);
//	return 0;
//}

//方法二，计算天数
//#include<stdio.h>
//int S_year(int year)
//{
//	if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
//	{
//		return 9;
//	}
//	else
//		return 0;
//		
//}
//int S_year_day(int year,int month)
//{
//	int day = 0;
//		if (S_year(year) && month == 2)
//		{
//			 return day = 29;
//		}
//		else
//		{
//			switch (month)
//			{
//			case 1:
//			case 3:
//			case 5:
//			case 7:
//			case 8:
//			case 10:
//			case 12:
//				day = 31;
//				break;
//			case 2:
//				day = 28;
//				break;
//			case 4:
//			case 6:
//			case 9:
//			case 11:
//				day = 30;
//				break;
//			}
//			return day;
//		}
//}
//int main()
//{
//	int year = 0, month = 0;
//	while (scanf("%d%d", &year, &month) != EOF)
//	{
//		int day = S_year_day(year, month);
//		printf("%d", day);
//	}
//	return 0;
//}


//#include <stdio.h>
//
//int main()
//{
//    double a1 = 0.0, a2 = 0.0;
//    char b = 0;
//    scanf("%lf%c%lf", &a1, &b, &a2);
//    if (b != '+' && b != '-' && b != '*' && b != '/')
//    {
//        printf("Invalid operation!\n");
//    }
//    else
//    {
//        if (b == '/')
//        {
//            if (a2 == 0.0)
//                printf("Wrong!Division by zero!\n");
//            else
//                printf("%.4lf/%.4lf=%.4lf", a1, a2, a1 / a2);
//        }
//        else 
//        {
//            switch (b)
//            {
//            case '+':
//                printf("%.4lf+%.4lf=%.4lf", a1, a2, a1 + a2);
//                break;
//            case '-':
//                printf("%.4lf-%.4lf=%.4lf", a1, a2, a1 - a2);
//                break;
//            case '*':
//                printf("%.4lf*%.4lf=%.4lf", a1, a2, a1 * a2);
//                break;
//
//            }
//        }
//    }
//    return 0;
//}


//#include <stdio.h>
//#include<string.h>
//
//void Print( char arr[])
//{
//    int len = strlen(arr);
//    char * left = arr;
//    char * right = arr + len - 1;
//    while (left < right)
//    {
//        char tem = *left;
//        *left = *right;
//        *right = tem;
//        left++;
//        right--;
//
//    }
//}
//int main()
//{
//    char arr[10000] = { 0 };
//    gets_s(arr);
//    Print(arr);
//    printf("%s\n", arr);
//    return 0;
//}


//输入一个字符串，可以有空格,输出逆序的字符串



/*实现一个函数，可以左旋字符串中的k个字符。

例如：
ABCD左旋一个字符得到BCDA

ABCD左旋两个字符得到CDAB*/

//#include<stdio.h>
//#include<string.h>
//void Rst(char str[],int k)
//{
//	int len = strlen(str);
//	int time = k % len;
//	for (int i = 0; i < time; i++)
//	{
//		char tem = str[0];
//		int j = 0;
//		for (j=0; j < len - 1; j++)
//		{
//			str[j] = str[j+1];
//		}
//		str[j] = tem;
//	}
//}
//
//	
//int main()
//{
//	char str[]="ABCD" ;
//	int a=0;
//	scanf("%d", &a);
//	Rst(str,a);
//	printf("%s\n", str);
//	return 0;
//}

//写一个函数打印arr数组的内容，不使用数组下标，使用指针。
//arr是一个整形一维数组。
//
//#include<stdio.h>
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int* pr = arr;
//	int len = sizeof(arr) / sizeof(arr[0]);
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", *(pr + i));
//	}
//	return 0;
//}

//模拟实现库函数strlen
// 
// 
// 
//#include<stdio.h>
//#include<string.h>
//int is_strlen(char *ps)
//{
//	int count = 0;
//	while (*ps != '\0')
//	{
//		count++;
//		ps++;
//}
//	return count;
//}
//
//int main()
//{
//	char str[] = "abcdef";
//	int len=is_strlen(str);
//	printf("%d\n", len);
//	return 0;
//}
//
//
// 
// 
// 
// 
// 
////写一个函数打印arr数组的内容，不使用数组下标，使用指针。
////arr是一个整形一维数组。




//输入一个整数数组，实现一个函数，
//
//来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分，
//
//所有偶数位于数组的后半部分。
//

//#include<stdio.h>
//void Change(int str[10],int len)
//{
//	int i = 0;
//	int j = len - 1;
//	while (i < j)
//	{
//		while (i < j && str[i] % 2 != 0)
//		{
//			i++;
//		}
//		while (i < j && str[j] % 2 == 0)
//		{
//			j--;
//		}
//		int tem = str[i];
//		str[i] = str[j];
//		str[j] = tem;
//	}
//}
//
//
//void Print(int str[10],int len)
//{
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", str[i]);
//	}
//	printf("\n");
//}
//
//int main()
//{
//	int str[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int len = sizeof(str) / sizeof(str[0]);
//	Change(str,len);
//	Print(str,len);
//	return 0;
//}


//#include<stdio.h>
//void Func(int arr[], int len)
//{
//	int i = 0;
//	int j = len - 1;
//	while (i < j)
//	{
//		while (i < j && arr[i] % 2 != 0)
//		{
//			//证明是奇数
//			i++;
//		}
//		//i下标就是偶数了 
//		while (i < j && arr[j] % 2 == 0)
//		{
//			//证明是偶数
//			j--;
//		}
//		//j下标就是奇数了 
//
//		int tmp = arr[i];
//		arr[i] = arr[j];
//		arr[j] = tmp;
//	}
//}
//void Show(int arr[], int len)
//{
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//}
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9 };
//	int len = sizeof(arr) / sizeof(arr[0]);
//	Func(arr, len);
//	Show(arr, len);
//	return 0;
//}



//实现一个对整形数组的冒泡排序

//#include<stdio.h>
//void Bu_change(int arr[], int len)
//{
//	for (int i = 0; i < len-1; i++)
//	{
//		for (int j = 0; j < len - 1 - i; j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int tem = arr[j+1];
//				arr[j + 1] = arr[j];
//				arr[j] = tem;
//			}
//		}
//	}
//}
//void Print(int arr[], int len)
//{
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//int main()
//{
//	int arr[] = { 1,3,5,4,6,7,9,8,10,2 };
//	int len = sizeof(arr) / sizeof(arr[0]);
//	Bu_change(arr, len);
//	Print(arr, len);
//	return 0;
//}

//
//#include <stdio.h>

//int main()
//{
//    int a = 0;
//    int count = 0;
//    int flage = 1;
//    for (int a = 100; a <= 999; a++)
//    {
//        int flage = 1;
//        for (int j = 2; j < a; j++)
//        {
//            if (a % j == 0)
//            {
//                flage = 0;
//                break;
//            }
//        }
//        if (flage == 1)
//        {
//            count++;
//        }
//    }
//    printf("%d", count);
//    return 0;
//}



//#include <stdio.h>
//int main()
//{
//    int n = 0;
//    double sum = 0.0;
//    scanf("%d", &n);
//    for (int i = n; i > 0; i--)
//    {
//        n = i;
//        if (n % 2 == 0)
//        {
//            sum -= (double)1 / n;
//        }
//        else
//        sum += (double)1 / n;
//    }
//    printf("%.3lf", sum);
//    return 0;
//}




//#include<stdio.h>
//int main()
//{
//    int n = 1;
//    int count = 0;
//    for (int i = 100; i <= 999; i++)
//    {
//        n = 1;
//        for (int j = 2; j < i; j++)
//        {
//            if (i % j == 0)
//            {
//                n = 0;
//            }
//        }
//        if (n)
//        {
//            count++;
//        }
//    }
//    printf("%d ", count);
//    return 0;
//}

/*实现一个函数，可以左旋字符串中的k个字符。

例如：
ABCD左旋一个字符得到BCDA

ABCD左旋两个字符得到CDAB*/
//#include<stdio.h>
//#include<string.h>
//void Turn_change(char str[], int k)
//{
//    int j = 0;
//    int sum = k % 4;
//    int len = strlen(str);
//    for (int i = 0; i < sum; i++)
//    {
//        int tem = str[0];
//        for (int j = 0; j < len-1; j++)
//        {
//            
//            str[j] = str[j + 1];
//       }
//        str[j] = tem;
//        
//    }
//}
//
//int main()
//{
//    char str[] = "ABCD";
//    int k = 0;
//    scanf("%d", &k);
//
//    Turn_change(str,k);
//    printf("%s\n", str);
//    return 0;
//}////有问题，没有发现到


//旋转，怎么搞？
//#include<stdio.h>
//int main()
//{
//
//}




//输入一个整数数组，实现一个函数，
//
//来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分，
//
//所有偶数位于数组的后半部分。
//

//#include<stdio.h>
//void Change(int str[], int len)
//{
//	int i = 0, j = len-1;
//	while (i < j)
//	{
//		while (i < j && str[i] % 2 != 0)
//		{
//			i++;
//		}
//		while (i < j && str[j] % 2 == 0)
//		{
//			j--;
//		}
//		int tem = str[i];
//		str[i] = str[j];
//		str[j] = tem;
//	}
//}
//void Print(int str[], int len)
//{
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", str[i]);
//	}
//}
//int main()
//{
//	int str[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int len = sizeof(str) / sizeof(str[0]);
//	Change(str,len);
//	Print(str,len);
//	return 0;
//}

//输入一个字符串，可以有空格,输出逆序的字符串

//#include<stdio.h>
//#include<string.h>
//void Change(char str[])
//{
//	int len = strlen(str);
//	char* left = str;
//	char* right = str + (len - 1);
//	while (left < right)
//	{
//		int tem = *left;
//		*left = *right;
//		*right = tem;
//		left++;
//		right--;
//	}
//}
//int main()
//{
//	char str[10000] = { 0 };
//	gets_s(str);
//	
//	Change(str);
//	printf("%s\n", str);
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9 };
//	int* ps = &arr[0];
//	printf("arr=%p\n", arr);
//	printf("&arr[0]=%p\n", &arr[0]);
//	return 0;
//}

//#include<stdio.h>
//#include<string.h>
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9 };
//	int* pa = &arr[0];
//	printf("%d", sizeof(arr));
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9 };
//	int* pa = &arr[0];
//	printf("%p\n", &arr);
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	int str[] = { 1,2,3,4,5,6,7,8,9,10 };
//	printf("&str[0]   = %p\n", &str[0]);
//	printf("&str[0]+1 = %p\n", &str[0]+1);
//	printf("&str      = %p\n", &str);
//	printf("&str+1    = %p\n", &str+1);
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int str[10] = { 0 };
//	int* pa = &str[0];
//	int len = sizeof(str) / sizeof(str[0]);
//	for (int i = 0; i < len; i++)
//	{
//		scanf("%d", pa + i);
//	}
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", *(pa + i));
//	}
//	return 0;
//}

//#include<stdio.h>
//void Print(int arr[])
//{
//	//int len1 = sizeof(arr) / sizeof(arr[0]);
//	//int sz2 = len1;
//	p/*rintf("%d\n", sizeof(arr));
//
//}
//int main()
//{
//	int arr[] = { 1,1,2,3,4,5,6,7,8,9 };
//	int len = sizeof(arr) / sizeof(arr[0]);
//	int sz = len;
//	printf("sz=%d\n", sz);
//	Print(arr);
//	return 0;
//}*/

//冒泡排序
//#include<stdio.h>
//void Button_c(int *str, int len)
//{
//	for (int i = 0; i < len - 1; i++)
//	{
//		for (int j = 0; j < len - 1 - i; j++)
//		{
//			if (*(str+j) > *(str + j+1))
//			{
//				int tem = *(str+j);
//				*(str+j) = *(str + j+1);
//				*(str +j+1) = tem;
//			}
//		}
//	}
//		
//}
//void print(int* str, int len)
//{
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", *(str + i));
//	}
//}
//int main()
//{
//	int str[10] = { 1,4,2,3,7,5,6,8,9,10 };
//	int len = sizeof(str) / sizeof(str[0]);
//	Button_c(str, len);
//	print(str,len);
//	return 0;
//}

#include<stdio.h>
void Button_c(int* str, int len)
{
	for (int i = 0; i < len - 1; i++)
	{
		int flage = 1;
		for (int j = 0; j < len - 1 - i; j++)
		{
			if (*(str + j) > *(str + j + 1))
			{
				int tem = *(str + j);
				*(str + j) = *(str + j + 1);
				*(str + j + 1) = tem;
				flage = 0;
			}
		}
		if (flage == 1)
		{
			break;
		}
	}
}
void print(int* str, int len)
{
	for (int i = 0; i < len; i++)
	{
		printf("%d ", *(str + i));
	}
}
int main()
{
	int str[10] = { 1,4,2,3,7,5,6,8,9,10 };
	int len = sizeof(str) / sizeof(str[0]);
	Button_c(str, len);
	print(str, len);
	return 0;
}